package com.umpay.dto.merAccess.req.consume;

import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotEmpty;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merAccess.req.CommonReq;

/* ******************  类说明  *********************
 * class       :  ConsumeGeneralOrderReq
 * @author     :  ncc
 * @date       :  2018年3月15日 上午11:19:02
 * @version    :  1.0  
 * description :  业务下单请求类
 * @see        :                        
 * ************************************************/   
public class ConsumeGeneralOrderReq extends CommonReq {
	/**
	 * 商户订单号
	 */
	@NotEmpty(message = "商户订单号不能为空")
	@Pattern(message = "商户订单号格式不正确")
	private String order_id;
	/**
	 * 商户订单日期
	 */
	@NotEmpty(message = "商户订单日期不能为空")
	@Pattern(message = "商户订单日期格式不正确")
	private String mer_date;
	/**
	 * 平台用户号
	 */
	@Pattern(message = "付款方用户号格式不正确")
	private String out_user_id;
	/**
	 * 用户类型
	 */
	@Pattern(message = "付款方类型格式不正确")
	private String out_user_type;
	/**
	 * 金额
	 */
	@NotEmpty(message = "金额不能为空")
	@Pattern(message = "金额格式不正确")
	private String amount;
	/**
	 * 订单类型
	 */
	@NotEmpty(message = "订单类型不能为空")
	@Pattern(message = "订单类型格式不正确")
	private String order_type;
	/**
	 * 交易渠道
	 */
	@NotEmpty(message = "交易渠道不能为空")
	@Pattern(message = "交易渠道格式不正确")
	private String order_channel;
	/**
	 * 交易渠道
	 */
//	@NotNull(message = "前台通知地址不能为空")
	@Pattern(message = "前台通知地址格式不正确")
	private String ret_url;
	/**
	 * 商户后台通知地址
	 */
//	@NotNull(message = "后台通知地址不能为空")
	@Pattern(message = "后台通知地址格式不正确")
	private String notify_url;
	/**
	 * 收货人
	 */
	private String consignee_name;
	/**
	 * 收货地址
	 */
	private String consignee_address;
	/**
	 * 联系电话
	 */
	private String consignee_phone;
	/**
	 * 备注信息
	 */
	private String remark;

	// 集合 子订单信息
	@Valid
	private List<SubOrderInfo> sub_order_info;

	public String getNotify_url() {
		return notify_url;
	}

	public void setNotify_url(String notify_url) {
		this.notify_url = notify_url;
	}

	public String getOrder_id() {
		return order_id;
	}

	public void setOrder_id(String order_id) {
		this.order_id = order_id;
	}

	public String getMer_date() {
		return mer_date;
	}

	public void setMer_date(String mer_date) {
		this.mer_date = mer_date;
	}

	public String getOut_user_id() {
		return out_user_id;
	}

	public void setOut_user_id(String out_user_id) {
		this.out_user_id = out_user_id;
	}

	public String getOut_user_type() {
		return out_user_type;
	}

	public void setOut_user_type(String out_user_type) {
		this.out_user_type = out_user_type;
	}

	public String getAmount() {
		return amount;
	}

	public void setAmount(String amount) {
		this.amount = amount;
	}

	public String getConsignee_name() {
		return consignee_name;
	}

	public void setConsignee_name(String consignee_name) {
		this.consignee_name = consignee_name;
	}

	public String getConsignee_address() {
		return consignee_address;
	}

	public void setConsignee_address(String consignee_address) {
		this.consignee_address = consignee_address;
	}

	public String getConsignee_phone() {
		return consignee_phone;
	}

	public void setConsignee_phone(String consignee_phone) {
		this.consignee_phone = consignee_phone;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public List<SubOrderInfo> getSub_order_info() {
		return sub_order_info;
	}

	public void setSub_order_info(List<SubOrderInfo> sub_order_info) {
		this.sub_order_info = sub_order_info;
	}

	public String getOrder_type() {
		return order_type;
	}

	public void setOrder_type(String order_type) {
		this.order_type = order_type;
	}

	public String getOrder_channel() {
		return order_channel;
	}

	public void setOrder_channel(String order_channel) {
		this.order_channel = order_channel;
	}

	public String getRet_url() {
		return ret_url;
	}

	public void setRet_url(String ret_url) {
		this.ret_url = ret_url;
	}

	@Override
	public String toString() {
		return "ConsumeGeneralOrderReq [order_id=" + order_id + ", mer_date=" + mer_date + ", out_user_id=" + out_user_id
				+ ", out_user_type=" + out_user_type + ", amount=" + amount + ", consignee_name=" + consignee_name + ", ret_url=" + ret_url
				+ ", consignee_address=" + consignee_address + ", consignee_phone=" + consignee_phone + ", remark=" + remark
				+ ",order_type=" + order_type + ",order_channel=" + order_channel + ",sub_order_info=" + sub_order_info + "," + super.toString() +"]";
	}
}
